/**
 * @brief 事件对象
 * @version 1.0
 * @author 宋炜
 * @date 
 */

#pragma once


#include "container/variant.hpp"

namespace wheels
{
	namespace dm
	{
		template< typename idType >
		struct eventData {
			idType                   m_id__;
			wheels::variant          m_data__;

			eventData(){}
			template< typename dataType >
			eventData( const idType& evt , const dataType& data ):
				m_id__( evt ) , m_data__( wheels::variant::make( data ) ){}
			eventData( const eventData& b ):
				m_id__( b.m_id__ ) , m_data__( b.m_data__ ){}

			eventData& operator=( const eventData& b ){
				m_id__ = b.m_id__;
				m_data__ = b.m_data__;

				return *this;
			}
		};

	}
}


